Method and apparatus for implementing reduced memory mode for high-definition television

ABSTRACT

A method and apparatus are provided for implementing an enhanced reduced memory mode (RMM) of decoding HDTV MPEG-2 video stream. In one instance, the RMM mode is adaptively enabled with up/down conversion by using the picture-type information. In another instance, the RMM mode is provided by performing anchor-frame compression/decompression by using adaptive DPCM technique with picture-type information. The quantization (PCM) tables are generated using the Lloyd algorithm. Further, the predictor for each pixel is determined by a use of the Graham rule.

CROSS-REFERENCE TO RELATED APPLICATION(S)

The present application is a continuation of U.S. application Ser. No.11/204,595 filed Aug. 15, 2005 entitled “A Method and Apparatus forImplementing Reduced Memory Mode for High-Definition Television,” nowU.S. Pat. No. 7,489,729, which is a continuation of U.S. applicationSer. No. 10/045,194 filed Oct. 19, 2001 entitled “A Method and Apparatusfor Implementing Reduced Memory Mode for High-Definition Television,”now U.S. Pat. No. 6,983,017, which claims priority to and the benefit ofU.S. Provisional Application No. 60/313,613 filed Aug. 20, 2001 entitled“A Method and Apparatus for Implementing Reduced Memory Mode forHigh-Definition Television,” the contents of which are fullyincorporated by reference herein. The present application containssubject matter related to the subject matter disclosed in U.S. patentapplication Ser. No. 09/640,870 entitled “Video and Graphics System withVideo Scaling” filed Aug. 18, 2000 and U.S. patent application Ser. No.09/870,034 entitled “Artifact-Free Decoding of MPEG-2 Video in theProgressive-Refresh Mode” filed May 29, 2001, now U.S. Pat. No.6,940,904, the contents of both of which are fully incorporated byreference herein. U.S. patent application Ser. No. 09/640,870corresponds to U.S. Pat. No. 6,768,774 issued Jul. 27, 2004.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

N/A

FIELD OF THE INVENTION

The Present invention is related to decoding of an encrypted digitalvideo stream, and particularly to a method and apparatus for reducingmemory when decoding an HDTV MPEG-2 video stream.

BACKGROUND OF THE INVENTION

MPEG-2 video is used to support both high-definition television (HDTV)and standard-definition television (SDTV). The video frames in HDTV areof higher resolution than those used in present NTSC signals while thevideo frames of SDTV have approximately the same resolution per frame asthe existing analog NTSC standard. Because HDTV provides higherresolution than SDTV, more data is generally required to represent anHDTV frame than is required to represent a corresponding SDTV frame.Accordingly, it is possible to transmit multiple SDTV programs in thesame bandwidth required to support a single HDTV program.

For SDTV, MPEG-2 Main Profile at Main Level (MP@ML) specifies variousrequirements for an MPEG compliant standard definition television signaland associated decoding equipment. MP@ML allows pictures as large as720×576×1.5 pels (4:2:0) for a total of 622,080 pels per picture. ForHDTV, MPEG-2 Main Profile at High Level (MP@HL) allows for pictures aslarge as 1920×1080×1.5 pels (4:2:0) for a total of 3,110,400 pels perpicture.

MPEG-2 video coding employs a motion-compensated discrete cosinetransform (DCT) algorithm. The DCT exploits spatial redundancy, andmotion compensation exploits temporal redundancy. To perform motioncompensation in frame mode, the MPEG-2 video decoder should have acapacity to store two reconstructed frames (e.g., an anchor frame andthe currently decoded frame) in the spatial domain. For decodingB-pictures, a third frame buffer is used to store a second anchor framesince B-pictures use a previously reconstructed and displayed frame anda reconstructed but not yet displayed frame as anchor frames for theirdecoding.

Because of the relatively large amount of data required to representeach HDTV frame, HDTV decoders must support higher data rates than SDTVdecoders. The additional memory used by an HDTV decoder, as compared toa standard SDTV decoder, and the increased complexity associated withthe inverse DCT circuit and other components of an HDTV decoder, canmake an HDTV decoder considerably more expensive than an SDTV decoder.

In the conventional method of obtaining a low-resolution SD imagesequence, the HD bitstream is fully decoded and then it is simplypre-filtered and sub-sampled. It is often referred to as afull-resolution decoder with spatial down-conversion. Although thequality is very good, the cost is typically quite high due to the largememory requirement.

In fact, the cost of memory alone may make an HDTV set incorporating anHDTV decoder prohibitively expensive for some consumers. It is expectedthat a fully MPEG compliant video decoder for HDTV may require a minimumof 10 MB of RAM for frame storage with a practical HDTV decoder probablyrequiring about 16 MB of relatively expensive Synchronous DRAM.

Therefore, it is desirable to provide a method and apparatus thatpermits one or more of the following advantages: (1) simplification ofthe complexity of the circuitry required to implement an HDTV decoder;(2) reduction in the amount of memory required to implement an HDTVdecoder circuit; and (3) a single decoder that is capable of decodingboth SDTV and HDTV signals. Furthermore, it is desirable that the costof such a decoder be low enough that it is in a range that would beacceptable to most consumers, e.g., approximately the cost of an SDTVdecoder.

SUMMARY OF THE INVENTION

Accordingly, in an embodiment according to the present invention, avideo decoding system for receiving a digital bitstream and for decodingthe digital bitstream is provided. The video decoding system comprises avideo decoder, means for converting, memory and recovery means. Thevideo decoder is used for decoding the digital bitstream to generate aplurality of pictures, each of which is associated with a flag forindicating whether or not the picture is to be reduced in size topicture data prior to being stored. The means for converting is used forconverting one or more pictures to picture data. The memory comprises aplurality of buffers. The picture is stored in a buffer as the picturedata when the associated flag is armed, and the picture is stored in twoor more buffers without size reduction when the associated flag isunarmed. The recovery means is used for recovering the pictures from thepicture data and for providing the pictures to the video decoder for useduring decoding of the digital bitstream.

In another embodiment of the present invention, a method of decoding adigital bitstream is provided. The digital bitstream is decoded togenerate a plurality of pictures, each of which is associated with aflag for indicating whether or not the picture is to be reduced in sizeto picture data prior to being stored in memory, which comprises aplurality of buffers. One or more pictures are converted to picturedata. The picture is stored in a buffer as the picture data when theassociated flag is armed. The picture is stored in two or more bufferswithout size reduction when the associated flag is unarmed. The picturesare recovered from the picture data to be used during decoding of thedigital bitstream.

In yet another embodiment of the present invention, a video decodingsystem for receiving a digital bitstream and for generating a displayvideo stream by decoding the digital bitstream is provided. The videodecoding system includes a video decoder, a block-based imagecompressor, memory and a block-based image decompressor. The videodecoder is used for decoding the digital bitstream to generate HDTVpictures, which include one or more anchor pictures. The block-basedimage compressor is used to compress the anchor pictures in the spatialdomain using a gain adaptive compression algorithm to generatecompressed bits. The memory is used for storing the compressed bits. Theblock-based image decompressor is used to decompress the compressed bitsusing a gain adaptive decompression algorithm to generate the anchorpictures. The decompressed anchor pictures are used during the decodingof the digital bitstream.

In still another embodiment of the present invention, a method ofgenerating a display video stream using a digital bitstream is provided.The encrypted digital bitstream is decoded to generate HDTV pictures,which include one or more anchor pictures. The anchor pictures arecompressed in the spatial domain using a gain adaptive compressionalgorithm to generate compressed bits. The compressed bits are stored inmemory. The compressed bits are decompressed using a gain adaptivedecompression algorithm to generate the anchor pictures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a memory-efficient decoder, which may beused to implement an embodiment according to the present invention;

FIG. 2 is a flow diagram of a control flow process of the adaptive RMMfor frame-structured pictures in an embodiment according to the presentinvention;

FIG. 3 shows the two-frame buffer in the circular-buffer form, which maybe used for prediction/decoding for the adaptive scheme of implementingRMM mode depending on the picture type, in an embodiment according tothe present invention;

FIG. 4 is a flow diagram of a control flow process of the adaptive RMMfor field-structured pictures in an embodiment according to the presentinvention;

FIG. 5 is a block diagram of a four-field buffer in circular-bufferform, which is managed as the buffer for the adaptive RMM mode forprediction/decoding in an embodiment according to the present invention;

FIG. 6 is a block diagram of a memory efficient decoder, which may beused to implement an alternate embodiment according to the presentinvention;

FIG. 7A is a block diagram of an adaptive DPCM encoder, which may beincluded, for example, in the block-based image compressor of FIG. 6;

FIG. 7B is a block diagram of an adaptive DPCM decoder, which may beincluded, for example, in the block-based image decompressor of FIG. 6;

FIG. 8 illustrates previous neighbor pixels used in the DPCM prediction;and

FIG. 9 is a flow diagram of the Lloyd algorithm for quantizer design inan embodiment according to the present invention.

DETAILED DESCRIPTION

In the present invention, a method and apparatus for reducing thecomplexity of decoder circuitry and video decoder memory requirementsare provided. Video decoding techniques may be used to decompress HDTVpictures at approximately the resolution of SDTV pictures, and may beused to decode HDTV and/or SDTV pictures. The video decoding techniquesof the present invention may be used as part of a picture-in-picturedecoder circuit for providing picture-in-picture capability withoutproviding multiple full-resolution video decoders. The reduction indecoder circuit complexity may be achieved through the use of datareduction techniques including the use of down-conversion/up-conversionand/or block-data recompression.

The present invention provides embodiments related to two options forimproving reduced memory mode when implementing in a high definition(HD) decoder. These options are: (1) adaptively enabling reduced memorymode (RMM) with up/down conversion by using the picture-typeinformation; and (2) performing anchor-frame compression/decompressionby using adaptive DPCM techniques with the picture-type information. Byanalyzing the trade-off between picture quality and implementation cost,the first option may cost less to implement while the second option mayprovide better picture quality.

I. Adaptively Enabling the Reduced Memory Mode

FIG. 1 is a block diagram of a memory-efficient decoder (e.g., an MPEG-2HD decoder) 100, which may be used to implement an embodiment accordingto the present invention. The memory-efficient decoder 100 includes avariable length decoder (VLD) (e.g., Huffman decoder) 102, an inversequantizer (IQTZ) 104, an inverse discrete cosine transformer (ICDT) 106,a summer 108, a down-converter 110, a motion compensator 112, anup-converter 114 and a frame buffer 116, which may comprise a number offrame buffers that are configured and/or accessed in circular fashion.

The VLD 102 receives an HDTV bitstream 118, decodes it and provides thedecoded bitstream to the IQTZ 104, which inverse quantizes and providesit in the form of DCT coefficients to the IDCT 106. The IDCT 106 inversecosine transforms the DCT coefficients and provides to the summer 108.The VLD 102 also extracts motion vectors 120 from the HDTV bitstream 118and provides to the motion compensator 112 for full-resolution motioncompensation. The result of the motion compensation from the motioncompensator 112 is provided to the summer 108 to be summed with theoutput of the IDCT 106 to generate full scale HDTV pictures.

For viewing on standard definition television (SDTV), the HDTV picturesare down-converted in the down-converter 110 to SDTV pictures 122. Themethod and apparatus for down-converting (downscaling) HDTV pictures toSDTV pictures, and vice versa, are known to those skilled in the art.

In other embodiments, the down-conversion may be performed by takingevery other horizontal pixel and/or by taking every other vertical pixelfor the whole HDTV picture. The down-conversion may also be performed byaveraging two adjacent pixels in horizontal and/or vertical directionfor the whole HDTV picture. The down-conversion may also be performedusing a gain-adaptive differential pulse-code modulation (DPCM)algorithm in other embodiments according to the present invention, whichis described later. Further, the down-conversion may be performed by anyother method known to those skilled in the art for downscaling thepicture size by a factor of two or more.

The SDTV pictures 122 (typically just the anchor pictures) are alsostored in the frame buffer 116, which may have less storage capacitythan frame buffers that are used to store full scale HDTV pictures.Therefore, the memory efficient decoder 100 may be smaller in size andmay cost less than HD decoders that store full scale HDTV pictures. Thememory efficient decoder 100 may be implemented in a single integratedcircuit (IC) chip. In other embodiments, the memory efficient decoder100 may be implemented using a number of IC chips, discrete components,and/or any combination of hardware, software and firmware.

The frame buffer 116 preferably is the only place where a new interface(in addition to the interfaces in conventional HD decoders with framebuffers for storing full scale HD pictures) is used in this embodiment.The down-converter 110 is applied to the HDTV pictures fordown-converting (downscaling) to store the HDTV pictures as SDTVpictures in the frame buffer 116, and the up-converter 114 is applied tothe SDTV pictures for up-converting (upscaling) when the reconstructedpixel values are needed for full-resolution motion compensation (MC) inthe motion compensator 112.

In an embodiment according to the present invention, the efficientmemory decoder 100 may be used to implement reduced memory mode (RMM)similar to the RMM as disclosed in U.S. patent application Ser. No.09/640,870 entitled “Video and Graphics System with Video Scaling,” thecontents of which have been fully incorporated by reference herein.During RMM, horizontal-only down-conversion and up-conversion may beperformed to achieve 2:1 or more memory reduction.

In this embodiment, the RMM (when enabled) is implemented as follows.First, the horizontal sub-sampling of the reconstructed anchor pictures(e.g., in the down-converter 110) yields Half-Horizontal Resolution(HHR) pictures (e.g., the SDTV pictures 122). For each horizontal line,pixels in the HHR pictures are generated by averaging (with roundingtoward to the nearest integer) of each pair of pixels of the originalreconstructed HD pictures. Secondly, for each non-intra macroblock, themotion compensation is performed (e.g., in the motion compensator 112)over the interpolated HHR anchor pictures (e.g. in the up-converter114). The HHR anchor pictures may also be recreated by horizontalpixel-doubling (or horizontally pixel-repeating).

In an embodiment according to the present invention, the RMM isadaptively enabled by the picture-type Information. For HDTV, MPEG-2Main Profile at High Level (MP@HL) allows for pictures as large as1920×1080×1.5 pels (4:2:0) for a total of 3,110,400 pels per picture.Thus, it is expected that a fully MPEG compliant video decoder for HDTVrequires a minimum of about 10 MB (i.e. 3,110,400×3) of RAM for framestorage. With the RMM, the frame buffer can be reduced to3,110,400×2=6.22 MB, i.e. a size of a two-frame buffer. For theIP-picture only and P-picture only cases, a two-frame buffer size isrequired for a compliant video decoder. Hence, if a sequence structurecan be detected automatically and frame-buffer memories can bedynamically allocated, the RMM may be accomplished without noticeablequality degradation.

The RMM in this embodiment may be adaptively turned off by using thedetected sequence structure such that the RMM can work properly in allcommonly-used cases. This adaptive RMM may be described in reference totwo cases, a case with frame-structure pictures and a case withfield-structure pictures.

FIG. 2 is a flow diagram of a control flow process 150 of the adaptiveRMM for a frame-structured picture in an embodiment according to thepresent invention. For example, the control flow process 150 of FIG. 2may be implemented in an MPEG-2 decoder, e.g., the memory efficientdecoder 100 of FIG. 1, and used to control the RMM mode. The controlflow process 150 may be implemented using any combination of hardware,firmware and/or software even though it typically would be implementedusing firmware in practice.

It should be noted the control flow process 150 would apply tobitstreams that contain I-pictures as well as P-pictures and/orB-pictures. If a bitstream does not contain I-pictures, for example, ifthe bitstream is a progressive-refresh bitstream, the control flowprocess would be slightly different as will be explained below. Examplesof progressive-refresh bitstreams are disclosed in U.S. patentapplication Ser. No. 09/870,034 entitled “Artifact-Free Decoding ofMPEG-2 Video in the Progressive-Refresh Mode” filed May 29, 2001, thecontents of which have been fully incorporated by reference herein.

In FIG. 2, rmm_feature flag indicates the selection switch of the RMM(whether RMM is available or not). The rmm_feature flag may, forexample, be programmed to be “ON” or “OFF” by a manufacturer duringfabrication of the MPEG-2 decoder or by a distributor of set top boxes.In other embodiments, the rmm_feature flag may also be turned off and onby a consumer, for example, through a window-based interface. In allcases, the state of the rmm_feature flag may be stored in a register ofthe MPEG-2 decoder. When the rmm_feature flag is in the “OFF” state,entering the reduced memory mode (RMM) is not even available as anoption.

Also in FIG. 2, an rmm_armed flag is used to enable/disable (arm/disarm)RMM mode on the fly while receiving and decoding an MPEG (e.g., MPEG-2)video stream. In this embodiment, the rmm_armed flag is typically armedat the beginning, on or before the time of receiving the first pictureof a video bitstream. This allows activation of the RMM mode at thebeginning of the sequence of pictures, in the absence of foreknowledgeas to whether the incoming sequence is IBBP type, IPPP type, PPPP type,etc. The rmm_armed flag is temporarily disarmed prior to processing eachpicture, and remains disarmed if a coded sequence configuration ofpictures indicates that the RMM mode is to be disarmed; otherwise, thermm_armed flag is rearmed.

Further, rmm_flag counter in FIG. 2 is used to detect the coded sequenceconfiguration (e.g., in order to determine whether or not to disable theRMM mode). For example, the rmm_flag counter may be used to count thenumber of P-pictures received in a row, and the RMM mode may be disarmed(i.e., rmm_armed flag is disarmed) when a predetermined number (e.g.,two for the case of frame-pictures) of P-pictures are received in a row.Of course, the specific names given to these and/or other flags andcounters throughout in reference to the embodiments of the presentinvention may be different in other embodiments.

The control flow process in step 152 checks whether the RMM mode isavailable or not by comparing the rmm_feature flag to “ON”, which may belogic 0 or logic 1. If the rmm_feature flag is not “ON”, non-RMM mode isentered since the RMM mode is not even available for the HD encoderunder this condition. If, however, the rmm_feature flag is “ON”, theprocess in step 154 resets the rmm_armed flag to 0 to disarm the RMMmode for the current picture unless and until the control flow 150determines that the RMM mode should be armed.

In step 156, the process checks whether the picture is an I-frame (intracoded frame) or a B-frame (bi-directional prediction frame). It shouldbe noted that step 156 does not apply to the case where the bitstreamdoes not contain I-pictures since the picture-type is not going to be anI-type in the absence of I-pictures. Instead, in the case of aprogressive-refresh bitstream, step 156 should check for a P-picturewith a refreshed Intra-slice (I-slice) as the first slice (at the top)since such a P-picture would be the first in a sequence of P-pictures tobe decoded. For example, the condition in step 156 in the embodimentwhere the bitstream does not contain I-pictures (e.g.,progressive-refresh bitstream) may be “pict_type==(P_TYPE && (firstslice is a refreshed I-slice)) ∥ pict_type==B_TYPE ?”

Returning now to FIG. 2, if the picture is an I-frame or a B-frame, thermm_flag counter is initialized to 0 in step 158 to indicate that thecurrent sequence of P-frames in a row has terminated. If, however, thepicture is neither an I-frame nor a B-frame, the process in step 162checks whether the picture is a P-frame (prediction frame).

If the picture is not a P-frame, the rmm_flag counter is set to 2 instep 164 to indicate that the RMM mode should not be armed. This is donefor backward compatibility of the MPEG-2 decoder with MPEG-1 bitstreams.For example, an MPEG-1 bitstream may contain one or more D-frames, whichare specific to MPEG-1 standard, but are not used in MPEG-2 standard.Thus, in case D-frames are encountered, the control flow process 150would recognize that the current bitstream is an MPEG-1 bitstream, andwould disarm the RMM mode.

If the picture is a P-frame, the process in step 160 checks whether thermm_flag counter is greater than 1. If the rmm_flag counter is greaterthan 1, then the rmm_flag counter is assigned 2 as the value. If,however, the rmm_flag counter is not greater than 1, the rmm_flagcounter is incremented by 1. Therefore, in step 160, when two or moreP-frames are received in a row, the rmm_flag counter becomes 2 andremains at 2.

After either the step 160 (the picture is a P-frame) or the step 164(the picture is not a P-frame), the process in step 166 checks whetherboth the picture is not a B-frame and the rmm_flag counter is not equalto 2. If both of these two conditions are met, the rmm_armed flag is setto 1, in step 168, i.e., the RMM mode is armed. If not, the RMM mode isnot armed. The condition that “the picture not be a B-frame” preventsthe rmm_flag from being armed when the current picture is a B-frame.Further, the condition that “the rmm_flag counter not be equal to 2”prevents the rmm_armed flag from being armed when two or more P-frames,including the current picture have been received in a row.

In step 170 of the process, the rmm_armed flag is compared to 1 todetermine whether the RMM mode has been armed or not. If the RMM modehas been armed (i.e., rmm_armed=1), the process in step 172 allocatesbuffer for RMM mode processing, and the process in step 174 performs RMMoperations for the current picture. If, however, the RMM mode has notbeen armed, the control flow process 150 does not perform the RMMoperations. In both cases, the next picture is received afterwards forprocessing, starting with the resetting of the rmm_armed flag to 0 instep 154 of the control flow process 150.

FIG. 3 shows the two-frame buffer 180 in the circular-buffer form, whichmay be used for prediction/decoding for the adaptive scheme ofimplementing an RMM mode depending on the picture type, in an embodimentaccording to the present invention. For example, the two-frame buffer180 may be used in the frame buffer 116 of FIG. 1. In the two-framebuffer 180, each of B₀ 182, B₁ 184, B₂ 186 and B₃ 188 represents ahalf-frame buffer. Thus, the sum B₀+B₁+B₂+B₃ make up the two-framebuffer 180, and the sum of any two buffers B_(i)+B_(j) may make up aone-frame buffer. The buffer manager flow for the RMM may be asindicated in Table 1 below.

TABLE 1 Buffer Allocation for the RMM with different picture types forframe-structured pictures. The half- frame buffer Buffer index The half-Allocation (modulo 4) frame buffer (with for the index (modulo subscriptprevious 4) for the index picture_type rmm_armed anchor frame last framemodulo 4) I 1 — i B_(i+1) P 0 i — B_(i+1) + B_(i+2) 1 — i B_(i+1) B 0 i— B_(i+1) + B_(i+2)

When the rmm_armed flag is armed (i.e., rmm_armed 1), the anchor frameis downscaled and thus only one half-frame may be used to store theanchor frame; otherwise, two half-frames are used to store the anchorframe.

To illustrate the buffer-allocation process given in Table 1, twoexamples are provided as Tables 2 and 3. It should be noted that thevideo bitstreams of Tables 2 and 3 are in decode order, but notnecessarily in display order. For example, in Table 3, the first frame(I-frame) and the second frame (P-frame) are decoded before thefollowing two B-frames. However, these two B-frames may be displayedbefore the second frame (P-frame).

TABLE 2 Case with I- and P-frames only I P P P P I P P P . . . Rmm_armed1 1 0 0 0 1 1 0 0 . . . Buffer B₀ B₁ B₂ + B₃ B₀ + B₁ B₂ + B₃ B₀ B₁ B₂ +B₃ B₀ + B₁ . . . Allocation

As can be seen in Table 2, the MPEG-2 video stream has a picturesequence of IPPPPIPPP . . . . It should be noted that when video streamsare in the form of IPPPP . . . or PPPP . . . , only two frame buffersare used for normal MPEG video decoding, whereas when B-frames are inthe video streams, three frame buffers are used for normal MPEG videodecoding. Therefore, when the video streams in the form of IPPP . . . orPPPP . . . are detected, the RMM mode may be disarmed (turned off) untilthe next I-frame is received. On the other hand, when B-frames are inthe video streams, the RMM mode should be armed (turned on) to reducememory usage.

Perhaps Table 2 can best be described in reference to the control flowprocess 150 of FIG. 2. Provided that the rmm_feature flag is “ON”, whenan I-frame is received as a first picture, the rmm_armed flag isinitially set to 0 (step 154), the rmm_flag counter is set to 0 (step158), the rmm_armed flag is reset to 1 (step 168), a half-frame buffer(B₀) is allocated for the I-frame (step 172) and the RMM operations areperformed for the I-frame (step 174).

When the next picture is a P-frame, the rmm_armed flag is initially setto 0 (step 154), the rmm_flag counter is incremented by one to 1 (step160), the rmm_armed flag is reset to 1 (step 168), a half-frame buffer(B₁) is allocated for the P-frame (step 172) and the RMM operations areperformed on the P-frame (step 174).

When the next picture is another P-frame (second P-frame in a row), thermm_armed flag is initially set to 0 (step 154), the rmm_flag counter isincremented by one to 2 (step 160), and the rmm_armed flag is not resetto 1 (and remains at 0) since now the rmm_flag counter equals to 2 (step166). Therefore, since the rmm_armed flag is not armed (i.e., rmm_armedflag=0), the RMM mode is not used and two half-frame buffers (B₂ and B₃)are used to store the second P-frame without downscaling.

When the next picture is yet another P-frame (third P-frame in a row),the rmm_armed flag is initially set to 0 (step 154), the rmmflag counterremains at 2 (step 160), and the rmm_armed flag is not reset to 1 (andremains at 0) since now the rmm_flag counter equals to 2 (step 166).Therefore, since the rmm_armed flag is not armed (i.e., rmm_armedflag=0), the RMM mode is not used and two half-frame buffers (B₀ and B₁)are used to store the third P-frame without downscaling. This isrepeated with the fourth P-frame in a row, except that now half-framebuffers B₂ and B₃ are used to store the fourth P-frame.

When the next picture is an I-frame, the string of P-frames ends, thermm_flag counter is set to 0 (step 158), and the rmm_armed flag is armedonce again (step 168). With the RMM mode armed (rmm_armed=1), ahalf-frame buffer (B₀) is allocated for the I-frame (step 172) and theRMM operations are performed for the I-frame (step 174).

Thereafter, arming and disarming of the RMM mode continue as describedabove for the case of IPPPPIPPP . . . in the decode order illustrated inTable 2. For the control flow process 150 of FIG. 2, when the videostream contains I-frames and P-frames of Table 2, 1) the RMM mode isarmed for the I-frames, and every first P-frame following any I-frame,and 2) the RMM mode is disarmed for every second P-frame in a row andthereafter until the next I-frame is received.

TABLE 3 Case with Two Adjacent B-frames I P B B P B B P B . . .rmm_armed 1 1 0 0 1 0 0 1 0 . . . Buffer B₀ B₁ B₂ + B₂ + B₀ B₂ + B₂ + B₁B₂ + . . . Allocation B₃ B₃ B₃ B₃ B₃

Unlike the MPEG-2 video stream of Table 2, the MPEG-2 video stream inTable 3 includes B-frames as well as I- and P-frames in a picturesequence of IPBBPBBPB . . . in decode order. Perhaps Table 3 also canbest be described in reference to the control flow process 150 of FIG.2. Provided that the rmm_feature flag is “ON”, when an I-frame isreceived as the first picture, the rmm_armed flag is initially set to 0(step 154), the rmm_flag counter is set to 0 (step 158), the rmm_armedflag is reset to 1 (step 168), a half-frame buffer (B₀) is allocated forthe I-frame (step 172) and the RMM operations are performed for theI-frame (step 174).

When the next picture is a P-frame, the rmm_armed flag is initially setto 0 (step 154), the rmm_flag counter is incremented by one to 1 (step160), the rmm_armed flag is reset to 1 (step 168), a half-frame buffer(B₁) is allocated for the P-frame (step 172) and the RMM operations areperformed on the P-frame (step 174).

When the next picture is a B-frame, it is decoded using the first andsecond pictures, the I- and P-frames in the half-frame buffers B₀ andB₁, respectively, as anchor pictures. The rmm_armed flag is initiallyset to 0 (step 154), the rmm_flag counter is set to 0 (step 158), andthe rmm_armed flag is not reset to 1 (and remains at 0) since thecurrent pictures is a B-frame (step 166). Therefore, since the rmm_armedflag is not armed (i.e., rmm_armed flag=0), the RMM mode is not used,and two half-frame buffers (B₂ and B₃) are used to store the B-framewithout downscaling.

When the next picture is another B-frame, the rmm_armed flag isinitially set to 0 (step 154), the rmm_flag counter remains at 0 (step158), and the rmm_armed flag is not reset to 1 (and remains at 0) sincethe current picture is a B-frame (step 166). Therefore, since thermm_armed flag is not armed (i.e., rmm_armed flag=0), the RMM mode isnot used and two half-frame buffers (B₂ and B₃) are used to store thesecond B-frame without downscaling.

It should be noted that the half-frame buffers B₂ and B₃ are used eventhough they were just used for the previous picture (the first B-frame)so that the I- and P-frames stored in the half-frame buffers B₀ and B₁can be used as anchor pictures for this and any subsequent consecutiveB-frames. Further, the P-frame in the half-frame buffer B₁ is yet to bedisplayed and it should not be overwritten.

When the next picture is a P-frame, the rmm_armed flag is initially setto 0 (step 154), the rmm_flag counter is incremented by one to 1 (step160), the rmm_armed flag is reset to 1 (step 168), a half-frame buffer(B₀) is allocated for the P-frame (step 172) and the RMM operations areperformed on the P-frame (step 174).

When the next picture is a B-frame, it is decoded using the second andfifth pictures, the P-frames in the half-frame buffers B₁ and B₀,respectively, as anchor pictures. The rmm_armed flag is initially set to0 (step 154), the rmm_flag counter is set to 0 (step 158), and thermm_armed flag is not reset to 1 (and remains at 0) since the currentpictures is a B-frame (step 166). Therefore, since the rmm_armed flag isnot armed (i.e., rmm_armed flag=0), the RMM mode is not used, and twohalf-frame buffers (B₂ and B₃) are used to store the B-frame withoutdownscaling.

When the next picture is another B-frame, the rmm_armed flag isinitially set to 0 (step 154), the rmm_flag counter remains at 0 (step158), and the rmm_armed flag is not reset to 1 (and remains at 0) sincethe current picture is a B-frame (step 166). Therefore, since thermm_armed flag is not armed (i.e., rmm_armed flag=0), the RMM mode isnot used and two half-frame buffers (B₂ and B₃) are used to store thesecond B-frame without downscaling.

Thereafter, arming and disarming of the RMM mode continue as describedabove for the case of IPBBPBBPB . . . in the decode order illustrated inTable 3. For the control flow process 150 of FIG. 2, when the videobitstream contains I-frames, P-frames and B-frames of Table 3, 1) theRMM mode is armed for the I-frames, and every first P-frame following anI-frame or a B-frame, and 2) the RMM mode is disarmed for every B-frame.

FIG. 4 is a flow diagram of a control flow process 200 of the adaptiveRMM for field-structured pictures in an embodiment according to thepresent invention. The control flow process 200 may be implemented usingany combination of hardware, software and/or firmware, even though ittypically would be implemented using firmware in practice.

It should be noted the control flow process 200 would apply tobitstreams that contain I-pictures as well as P-pictures and/orB-pictures. If a bitstream does not contain I-pictures, for example, ifthe bitstream is a progressive-refresh bitstream, the control flowprocess would be slightly different as will be explained below. Examplesof progressive-refresh bitstreams are disclosed in U.S. patentapplication Ser. No. 09/870,034 entitled “Artifact-Free Decoding ofMPEG-2 Video in the Progressive-Refresh Mode” filed May 29, 2001, thecontents of which have been fully incorporated by reference herein.

It should also be noted that when using field-structured pictures, fourfields (i.e. two frames) of memories are normally used for I- and/orP-field-only bitstreams while five fields (i.e. two and half frames) ofmemories are normally used for I-, P-, and B-field type of bitstreams.Thus, the adaptive RMM for the field-structured pictures preferablyresult in memory savings of one field for bitstreams that containB-field pictures. It should also be noted that the rmm_armed flag may bearmed in two fields among any four adjacent anchor fields forbitstreams, which contain B-field pictures.

The rmm_feature flag and the rmm_armed flag are similar to the case ofthe frame-structured pictures as described in reference to FIG. 2. Thermm_flag counter preferably is used to count the number of P-fieldsreceived without any intervening I-fields or B-fields.

In step 202 of the control flow process 200, the process checks whetherthe RMM feature should be used by comparing the rmm_feature flag against“ON”. If the rmm_feature flag is not “ON”, the RMM mode is not used, andnon-RMM mode is entered for any of the pictures until it is turned on(e.g., by a viewer using a window-type interface). In practice, thermm_feature flag is typically turned on during manufacturing of the MPEGdecoder chip or the set top box and may not be accessible to the viewerto turn it off and on.

If the rmm_feature flag is “ON”, the process in step 204 resets pict_cnt(picture count) counter to 0. The pict_cnt counter is used to countmodulo 2 (MOD 2) of the number of I-fields, without disarming the RMMmode, received by the MPEG-2 decoder. Similar to the case of decodingframe-type pictures, the rmm_armed flag is armed (i.e., rmm_armedflag=1) in the beginning prior to receiving the first picture in thevideo bitstream. The process in step 206 resets the rmm_armed to 0 sothat the RMM mode is not armed (turned off).

In step 210, the process checks whether the picture is an I-field (intracoded field) or a B-field (bi-directional prediction field). It shouldbe noted that step 210 does not apply to the case where the bitstreamdoes not contain I-pictures since the picture-type is not going to be anI-type in the absence of I-pictures. Instead, in the case of aprogressive-refresh bitstream, step 210 should check for a P-picturewith a refreshed I-slice as the first slice (at the top) since suchP-picture would be the first in a sequence of P-pictures to be decoded.For example, the condition in step 210 in the embodiment where thebitstream does not contain I-pictures (e.g., progressive-refreshbitstream) may be “pict_type==(P-TYPE && (first slice is a refreshedI-slice)) ∥ pict_type==B_TYPE ?”

Returning now to FIG. 4, if the picture is an I-field or a B-field, thermm_flag counter is initialized to 0 in step 208 to indicate that thecurrent sequence of P-fields in a row has terminated. If, however, thepicture is neither an I-field nor a B-field, the process in step 212checks whether the picture is a P-field (prediction field).

If the picture is not a P-field, the rmm_flag counter is set to 5 instep 216 to indicate that the RMM mode should not be armed. This is donefor backward compatibility of the MPEG-2 decoder with MPEG-1 bitstreams.For example, an MPEG-1 bitstream may contain one or more D-fields, whichare specific to MPEG-1 standard, but are not used in MPEG-2 standard.Thus, in case D-fields are encountered, the control flow process 200would recognize that the current bitstream is an MPEG-1 bitstream, andwould disarm the RMM mode.

If the picture is a P-field, the process in step 214 checks whether thermm_flag counter is greater than 4. If the rmm_flag counter is greaterthan 4, then the rmm_flag counter is assigned 5 as the value. If,however, the rmm_flag counter is not greater than 4, the rmm_flagcounter is incremented by 1. Therefore, in step 214, when five or moreP-fields are received in a row, the rmm_flag counter becomes 5 andremains at 5.

After either step 214 (the picture is a P-field) or step 208 (thepicture is not a P-field), the process in step 218 checks whether thepicture is not a B-field. If the picture is a B-field, the rmm_armedflag is not armed prior to when the process compares the rmm_armed flagto 1 in step 228 to check whether the RMM mode has been armed or not.Since the rmm_armed flag is not reset to 1 when the picture is aB-field, the RMM mode is not armed (turned on), and the B-field isstored in the frame buffer without being downscaled. Then in step 229,the pict_cnt counter is reset to 0.

When the picture is not a B-field and the picture is an I-field, thermm_armed flag is set to 1 in step 220 to indicate arming of the RMMmode if the sum of the pict_cnt counter and the rmm_flag counter isgreater than 4. Otherwise, the rmm_armed flag is set to (remains at) 0,and the RMM mode is not armed. Then in step 224, the pict_cnt counter isincremented by 1, then modulo 2 (MOD 2) is taken and assigned to thepict_cnt counter. On the other hand, if the picture is a P-picture, thepict_cnt counter is not incremented.

After one of the steps 218 (in case the picture is a B-picture) and 224,the process in step 228 checks whether the RMM mode has been armed bycomparing the rmm_armed flag to 1. If the rmm_armed flag is equal to 0(i.e., RMM mode has not been armed), the pict_cnt counter is reset to 0in step 229. If the rmm_armed flag is equal to 1 (i.e., RMM mode hasbeen armed), buffers are allocated in step 230 and the RMM operationsare performed for the picture in step 232. If, however, the rmm_armedflag is not equal to 1, steps 230 and 232 are not performed. Then, theprocess repeats for the next picture, starting with resetting of thermm_armed flag to 0 in step 206.

FIG. 5 is a block diagram of a four-field buffer 250 in circular-bufferform, which is managed as the buffer for the adaptive RMM mode forprediction/decoding in an embodiment according to the present invention.For example, the four-field buffer 250 may be used in the frame buffer116 when the memory efficient decoder 100 is used to decode field-typeMPEG-2 video bitstreams in the RMM mode. Of course, the frame buffer 116may be apportioned differently to include either the two-frame buffer180 or the four-field buffer 250 depending on the mode of operation(frame-type or field-type) of the memory efficient decoder 100 of FIG.1.

In FIG. 5, the half-field buffers B₀ 252, B₁ 254, B₂ 256, B₃ 258, B₄260, B₅ 262, B₆ 264 and B₇ 266 make up the circular four-field buffer250. The sum of any two half-field buffers B_(i)+B_(j) is one-fieldbuffer. Table 4 is the buffer manager flow for the RMM.

TABLE 4 Buffer Allocation for the RMM with different picture types forfield-structured pictures. The field Buffer buffer index The fieldAllocation (modulo 8) buffer index (with Picture_type for the (modulo 8)subscript (for a latest anchor for the last index field) rmm_armed fieldfield modulo 8) I 1 — i B_(i+1) P 0 i — B_(i+1) + B_(i+2) 1 — i B_(i+1)B 0 i — B_(i+1) + B_(i+2)

When the rmm_armed flag is armed (i.e., rmm_armed=1), the anchor pictureis downscaled and thus only one half-field may be used to store theanchor field; otherwise, two half-fields are used to store the anchorfield.

To illustrate the buffer-allocation process given in Table 4, twoexamples are provided as Tables 5 and 6. Tables 5 and 6, respectively,illustrate two examples of the buffer-allocation process for I- andP-pictures only and two adjacent B-picture field cases in an embodimentaccording to the present invention. It should be noted that the videobitstreams of Tables 5 and 6 are in decode order, but not necessarily indisplay order. For example, in Table 6, the third and fourth fields(P-fields) are decoded before the following two B-fields (fifth andsixth fields). However, these two B-fields may be displayed before thethird and fourth fields.

TABLE 5 The case with I- and P-pictures only I P P P P P I P P . . .rmm_armed 1 1 1 1 0 0 1 1 1 . . . Buffer B₀ B₁ B₂ B₃ B₄ + B₆ + B₀ B₁ B₂. . . Allocation B₅ B₇

As can be seen in Table 5, the MPEG-2 video stream can have a picturesequence of IPPPPPIPP . . . . It should be noted that when video streamsare in the form of IPPPP . . . or PPPP . . . (only I- and P-fields),only four field buffers are used for normal MPEG video decoding, whereaswhen B-fields are in the video streams, five field buffers are used fornormal MPEG video decoding. Therefore, when the video streams includeonly I- and P-fields, the RMM mode may be disarmed (turned off). On theother hand, when B-fields are in the video streams, the RMM mode shouldbe armed (turned on) to reduce memory usage.

Perhaps Table 5 can best be described in reference to the control flowprocess 200 of FIG. 4. Provided that the rmm_feature flag is “ON”, whenan I-field (top field) is received as a first picture, the pict_cntcounter is initially set to 0 (step 204), the rmm_armed flag isinitially set to 0 (step 206), the rmm_flag counter is set to 0 (step208), the rmm_armed flag is set to 1 (step 220) since the sum ofpict_cnt counter (=0) and the rmm_flag counter (=0) is 0, which is notgreater than 4, and the pict_cnt counter is incremented by one to 1(step 224). Therefore, since the rmm_armed flag is armed (i.e., mm_armedflag=1), the RMM mode is used, and one half-field buffer (B₀) is used tostore the I-field (first picture) after downscaling.

When the next picture is a P-field (bottom field), the rmm_armed flag isinitially set to 0 (step 206), the rmm_flag counter is incremented byone to 1 (step 214), the rmm_armed flag is set to 1 (step 220) since thesum of the pict_cnt counter (=1) and the rmm_flag counter (=1) is 2,which is not greater than 4, and the pict_cnt counter is not incremented(step 224). Therefore, since the rmm_armed flag is armed (i.e.,rmm_armed flag=1), the RMM mode is used, and one half-field buffer (B₁)is used to store the P-field (second picture) after downscaling.

When the next picture is another P-field (top field), the rmm_armed flagis initially set to 0 (step 206), the rmm_flag counter is incremented byone to 2 (step 214), the rmm_armed flag is set to 1 (step 220) since thesum of the pict_cnt counter (=1) and the rmm_flag counter (=2) is 3,which is not greater than 4, and the pict_cnt counter is not incremented(step 224). Therefore, since the rmm_armed flag is armed (i.e.,rmm_armed flag=1), the RMM mode is used, and one half-field buffer (B₂)is used to store the P-field (third picture) after downscaling.

When the next picture is yet another P-field (bottom field), thermm_armed flag is initially set to 0 (step 206), the rmm_flag counter isincremented by one to 3 (step 214), the rmm_armed flag is set to 1 (step220) since the sum of the pict_cnt counter (=1) and the rmm_flag counter(=3) is 4, which is not greater than 4, and the pict_cnt counter is notincremented (step 224). Therefore, since the rmm_armed flag is armed(i.e., rmm_armed flag=1), the RMM mode is used, and one half-fieldbuffer (B₃) is used to store the P-field (fourth picture) afterdownscaling.

When the next picture is yet another P-field (top field), the rmm_armedflag is initially set to 0 (step 206), the rmm_flag counter isincremented by one to 4 (step 214), the rmm_armed flag remains at 0(step 220) since the sum of the pict_cnt counter (=1) and the rmm_flagcounter (=4) is 5, which is greater than 4, and the pict_cnt counter isnot incremented (step 224). Therefore, since the rmm_armed flag is notarmed (i.e., rmm_armed flag=0), the RMM mode is not used, and twohalf-field buffers (B₄ and B₅) are used to store the P-field (fifthpicture) without downscaling. Then, the pict_cnt counter is reset to 0(step 229).

When the next picture is still another P-field (bottom field), thermm_armed flag is initially set to 0 (step 206), the rmm_flag counter isincremented by one to 5 (step 214), the rmm_armed flag remains at 0(step 220) since the sum of the pict_cnt counter (=0) and the rmm_flagcounter (=5) is 5, which is greater than 4, and the pict_cnt counter isnot incremented (step 224). Therefore, since the rmm_armed flag is notarmed (i.e., rmm_armed flag=0), the RMM mode is not used, and twohalf-field buffers (B₆ and B₇) are used to store the P-field (sixthpicture) without downscaling. The pict_cnt counter remains at 0 (step229).

When the next picture is an I-field (top field), the rmm_armed flag isinitially set to 0 (step 206), the rmm_flag counter is reset to 0 (step208), the rmm_armed flag is set to 1 (step 220) since the sum of thepict_cnt counter (=0) and the rmm_flag counter (=0) is 0, which is notgreater than 4, and the pict_cnt counter is set to 1 (step 224).Therefore, since the rmm_armed flag is armed (i.e., rmm_armed flag=1),the RMM mode is used, and one half-field buffer (B₀) is used to storethe I-field (seventh picture) after downscaling.

Thereafter, arming and disarming of the RMM mode continue as describedabove for the case of IPPPPPIPP . . . in the decode order illustrated inTable 5. For the control flow process 200 of FIG. 4, when the videobitstream contains I-fields and P-fields of Table 6, the RMM mode isarmed for: 1) the I-fields; 2) up to three continuous P-fields followingan I-field when a frame has an I-field as a top field and a P-field as abottom field; and 3) up to four continuous P-fields when the firstP-field of the sequence is a top field.

TABLE 6 The case with Two Adjacent B-picture fields I P P P B B P P B .. . rmm_armed 1 1 1 1 0 0 1 1 0 . . . Buffer B₀ B₁ B₂ B₃ B₄ + B₅ B₆ + B₀B₁ B₂ + B₃ . . . Allocation B₇

As can be seen in Table 6, the MPEG-2 video stream can have a picturesequence of IPPPBBPPB . . . . Perhaps Table 6 also can best be describedin reference to the control flow process 200 of FIG. 4. Provided thatthe rmm_feature flag is “ON”, when an I-field (top field) is received asa first picture, the pict_cnt counter is initially set to 0 (step 204),the rmm_armed flag is initially set to 0 (step 206), the rmm_flagcounter is set to 0 (step 208), the rmm_armed flag is set to 1 (step220) since the sum of the pict_cnt counter (=0) and the rmm_flag counter(=0) is 0, which is not greater than 4, and the pict_cnt counter isincremented by one to 1 (step 224). Therefore, since the rmm_armed flagis armed (i.e., rmarmed flag=1), the RMM mode is used, and onehalf-field buffer (B₀) is used to store the I-field (first picture)after downscaling.

When the next picture is a P-field (bottom field), the rmm_armed flag isinitially set to 0 (step 206), the rmm_flag counter is incremented byone to 1 (step 214), the rmm_armed flag is set to 1 (step 220) since thesum of the pict_cnt counter (=1) and the rmm_flag counter (=1) is 2,which is not greater than 4, and the pict_cnt counter is not incremented(step 224). Therefore, since the rmm_armed flag is armed (i.e., rmmarmedflag=1), the RMM mode is used, and one half-field buffer (B₁) is used tostore the P-field (second picture) after downscaling.

When the next picture is another P-field (top field), the rmm_armed flagis initially set to 0 (step 206), the rmm_flag counter is incremented byone to 2 (step 214), the rmm_armed flag is set to 1 (step 220) since thesum of the pict_cnt counter (=1) and the rmm_flag counter (=2) is 3,which is not greater than 4, and the pict_cnt counter is not incremented(step 224). Therefore, since the rmm_armed flag is armed (i.e.,rmm_armed flag=1), the RMM mode is used, and one half-field buffer (B₂)is used to store the P-field (third picture) after downscaling.

When the next picture is yet another P-field (bottom field), thermm_armed flag is initially set to 0 (step 206), the rmm_flag counter isincremented by one to 3 (step 214), the rmm_armed flag is set to 1 (step220) since the sum of the pict_cnt counter (=1) and the rmm_flag counter(=3) is 4, which is not greater than 4, and the pict_cnt counter is notincremented (step 224). Therefore, since the rmm_armed flag is not armed(i.e., rmm_armed flag=0), the RMM mode is used, and one half-fieldbuffers (B₃) is used to store the P-field (fourth picture) afterdownscaling.

When the next picture is a B-field (top field), the rmm_armed flag isinitially set to 0 (step 206), and the rmm_flag counter is reset to 0(step 208). Since the rmm_armed flag is not set to 1, the process instep 228 determines that the RMM mode is not to be entered, and thepict_cnt counter is reset to 0 (step 229). Therefore, two half-fieldbuffers (B₄ and B₅) are used to store the B-field (fifth picture)without downscaling.

When the next picture is another B-field (bottom field), the rmm_armedflag is initially set to 0 (step 206), and the rmm_flag counter is resetto 0 (step 208). Since the rmm_armed flag is not set to 1, the processin step 228 determines that the RMM mode is not to be entered, and thepict_cnt counter is reset to 0 (step 229). Therefore, two half-fieldbuffers (B₆ and B₇) are used to store the B-field (sixth picture)without downscaling.

When the next picture is a P-field (top field), the rmm_armed flag isinitially set to 0 (step 206), the rmm_flag counter is incremented byone to 1 (step 214), the rmm_armed flag is set to 1 (step 220) since thesum of the pict_cnt counter (=0) and the rmm_flag counter (=1) is 1,which is not greater than 4, and the pict_cnt counter is not incremented(step 224). Therefore, since the rmm_armed flag is armed (i.e.,rmm_armed flag 1), the RMM mode is used, and one half-field buffer (B₀)is used to store the P-field (seventh picture) after downscaling.

Thereafter, arming and disarming of the RMM mode continue as describedabove for the case of IPPPBBPPB . . . in the decode order illustrated inTable 6. For the control flow process 200 of FIG. 4, when the videobitstream contains I-fields, P-fields and B-fields of Table 6, the RMMmode is armed for: 1) I-fields; 2) up to three continuous P-fieldsfollowing an I-field when a frame has an I-field as a top field and aP-field as a bottom field; 3) up to four continuous P-fields when thefirst P-field of the sequence is a top field; 4) and B-fields.

II. Anchor-Frame Compression/De-Compression by Using Adaptive DPCMTechnique

In an alternate embodiment of the present invention, the reduced memorymode (RMM) preferably is implemented by performing re-compression anddecompression of anchor frames. In this alternate embodiment,block-based image compressor is applied to achieve the RMM. Inparticular, a gain-adaptive multiple-codebook differential pulse-codemodulation (DPCM) algorithm preferably is used to achieve memoryreduction in the RMM mode.

In DPCM, blocks of pixels, e.g., blocks of 16×16 pixels are reduced insize, for example, to blocks of 16×8 pixels. In most cases, pixels inthe 16×16 block of a picture are correlated since intensity of adjacentpixels are similar unless there is a boundary between them. In DPCM,differences between adjacent pixels are taken, quantized and coded. Bysaving the quantization level of the difference rather than thedifference, memory can be saved. For example, if the difference inintensity is 64, it would take 6 bits to store the difference. However,if the difference is quantized to 8 levels and the quantization level isstored, only 3 bits may be used. In DPCM, a quantization table, whichmay be referred to as a PCM table or a codebook, is used to generate thequantization level from the intensity difference between two adjacentpixels.

A. The Gain-Adaptive Differential Pulse-Code Modulation (DPCM) Algorithmfor the RMM

In this embodiment of the present invention, memory reduction isachieved by applying a block-based data compression technique in theanchor frames. The data compression preferably is accomplished in thespatial domain by a gain-adaptive DPCM algorithm with a pre-determinedpredictor and several pre-trained quantization tables. The quantizationtables are adaptively selected based on the magnitude of the data (e.g.,intensity difference between adjacent pixels) to be quantized. This way,the quantization levels are scaled based on the magnitude of the data tobe quantized. For example, the quantization tables (codebooks) may bemade available to both the encoder and the decoder, so that onlycodebook indices may then be coded and transmitted rather than dataitself so that less number of bits may be transmitted.

FIG. 6 is a block diagram of a memory efficient decoder 300, which maybe used to implement this alternate embodiment according to the presentinvention. The memory efficient decoder 300 includes a variable lengthdecoder (VLD) (e.g., Huffman decoder) 302, an inverse quantizer (IQTZ)304, an inverse discrete cosine transformer (ICDT) 306, a summer 308, amotion compensator 310, a block-based image decompressor 312 a framebuffer 314 and a block-based image compressor 316.

The VLD 302 receives HDTV bitstream 318, decodes it and provides thedecoded bitstream to the IQTZ 304, which inverse quantizes and providesit in the form of DCT coefficients to the IDCT 306. The IDCT 306 inversecosine transforms the DCT coefficients and provides to the summer 308.The VLD 302 also extracts motion vectors (MVs) from the HDTV bitstream318 and provides to the motion compensator 310 for full-resolutionmotion compensation. The result of the motion compensation from themotion compensator 310 is provided to the summer 308 to be summed withthe output of the IDCT 306 to generate full scale HDTV pictures.

For viewing on high definition television (HDTV), the HDTV pictures 320are provided. Of the HDTV pictures 320, anchor pictures 322 are alsoprovided to the block-based image compressor 316 for compression priorto being stored in the frame buffer in compressed bits. The frame buffer314 may have less storage capacity than frame buffers that are used tostore uncompressed/decompressed HDTV pictures. Therefore, the memoryefficient decoder 300 may be smaller in size and cost less thanconventional HD decoders with a frame buffer for storing full scale HDTVpictures. For full-resolution motion compensation in the motioncompensator 310, the block-based image decompressor 312 decompresses thecompressed HDTV pictures stored in the frame buffer 314 in the form ofcompressed bits.

The details of the gain-adaptive DPCM in an embodiment of the presentinvention are illustrated in FIGS. 7A and 7B. FIG. 7A is a block diagramof an adaptive DPCM encoder, which may be included, for example, in theblock-based image compressor 316 of FIG. 6. FIG. 7B is a block diagramof an adaptive DPCM decoder, which may be included, for example, in theblock-based image decompressor 312 of FIG. 6. Quantization (coding)efficiency is accomplished by using the dynamic range of the predictionresidues for each block to adaptively select a set of quantizationtables in the compression and decompression process. The selection ofquantization tables is based on the range information.

The adaptive DPCM encoder 350 includes quantization tables Q1 352, Q2354 and Q3 356. The quantization tables Q1, Q2 and Q3 may be implementedoutside of the DPCM encoder 350, and may be shared by the DPCM decoder380 of FIG. 7B. The adaptive DPCM encoder 350 also includes a subtractor358, a range computer 360, a quantizer (quantization tableselector/coder) 362, a summer 366 and a predictor selector 364.

The subtractor 358 receives input pixels and outputs prediction residuesto the range computer 360 and the quantizer 362. The range computer 360generates quantized range value as well as the quantized minimum andmaximum values. Based on the quantized range value, the quantizer 362adaptively selects the quantization tables Q1 352, Q2 354 and Q3 356.The quantization tables Q1, Q2 and Q3 are provided for illustrativepurposes only. In practice, the adaptive DPCM encoder 350 may include orhave access to different number of quantization tables.

The quantization tables Q1, Q2 and Q3 are designed on a basis of thestatistical model of the predictor by using the Lloyd algorithm. Theprocedure for generating quantization tables (PCM tables) will bediscussed later in reference to FIG. 9. Since the quantized range valueis used in the quantization process for each individual block, thequantized range value is used for the dequantization process and it isthus included in the header of each compressed data block along with thequantized minimum value by the data multiplexer. The quantizer 362provides the minimum value, the range value and the codebook indices tobe used for decompression.

The quantizer 362 also provides quantized differential values to thesummer 366 to be added to a predictor generated by the predictorselector 364. The predictor provides a prediction value for the currentpixel based on the previously quantized left- or up-pixels. Thepredictor for each pixel is determined by a use of the Graham rule,which is explained in reference to FIG. 8 later. The predictor is alsosubtracted by the input pixels in the subtractor 358 to generate theprediction residues.

Since the quality of the compressed first pixel is important for theentire block, the first pixel should be compressed with the maximumerror of 1. A normalization process, with the minimum value as the meanand the range as the variance, is applied to differential values for thegain-adaptive DPCM. To improve the overall performance further, thenegative prediction residues (the differences between the coded pixeland the predictor) are also converted to positive values by thenormalization process, for example, by adding a fixed value to all theprediction residues. Therefore, all of the available quantization levelspreferably are placed to cover only the positive part of predictionresidues.

To provide an easy access to memory for motion-compensation, thecompressed data for each image block should have a fixed size. Thus,each compressed block has a clear and distinctive boundary in the memoryand can be easily accessed with simple circuitry. For example, theindices are fixed-length coded rather than variable-length coded so thatthe location of the compressed block in memory can be located by simplyusing the original address divided by two since the compressed block ishalf the size of the uncompressed block.

The DPCM decoder 380 of FIG. 7B includes a dequantizer 388, a summer 390and a predictor selector 392. The DPCM decoder 380 may includequantization tables Q1 382, Q2 384 and Q3 386 as well as otherquantization tables. The DPCM decoder 380 may also share thequantization tables with the DPCM encoder 350 of FIG. 7A. Thedequantizer 388 receives the minimum value, the range value and thecodebook indices from the DPCM encoder 350, and generates quantizeddifferential values by adaptively selecting the quantization tables anddecoding the compressed data using the selected quantization tables. Inother words, the codebook indices include information about conversionfrom quantization level to the quantized value.

The quantized differential values are added with the predictor in thesummer 390 to be provided as decoded pixel values. The decoded pixelvalues, in turn, may be provided to the predictor selector 392 to bedelayed and provided as a predictor to the summer 390 for generation ofother decoded pixel values.

FIG. 8 illustrates previous neighbor pixels used in the DPCM prediction(e.g., in the predictor selector 364 of FIG. 7A or the predictorselector 392 of FIG. 7B) where X 408 is the current pixel. The quantizedvalues of the previously decoded pixels, A 402, B 404, C 406 are used todetermine the direction of the DPCM as follows.If (|A−B|<|B−C|)

-   -   C is selected as the predictor;

Else

-   -   A is selected as the predictor.

For example, when the X pixel 408 is the current pixel, the X pixel 408may be predicted from the C pixel 406 (upper pixel) or the A pixel 402(left pixel), which are two adjacent pixels that are typically codedbefore the X pixel 408. An absolute value |A−C| of the difference inintensity between the A pixel 402 and the C pixel 406 is taken, and anabsolute value |B−C| of the difference in intensity between the B pixel404 and the C pixel 406 is taken.

If the absolute value of the difference between A 402 and B 404 is lessthan the absolute value of the difference between B 404 and C 406, C 406is selected as the predictor; otherwise, A 402 is selected as thepredictor. This is because of correlation between adjacent pixels. Ifthere is a bigger difference between two adjacent pixels, there mostlikely is an edge (or a boundary) between them. For example, if thedifference between A 402 and B 404 is bigger, there may be a horizontaledge between A 402 and B 404, and thus between C 406 and X 408 as well.Similarly, if the difference between B 404 and C 406 is bigger, theremay be a vertical edge between B 404 and C 406, and thus between A 402and X 408. In the case where edges exist, this decision rule (Grahamrule) takes the up-pixel as the predictor for the vertical edges and theleft-pixel as the predictor for the horizontal edges.

B. Generation of the Quantization (PCM) Tables

The PCM Tables may be generated using statistical values for imagepixels during fabrication of the MPEG-2 decoder, during set top boxmanufacturing and/or during operation of the MPEG-2 decoder.Initialization of the PCM table is performed by simply grouping thehistogram values. Then, the PCM table is refined by using the Lloydquantizer design algorithm below.

FIG. 9 is a flow diagram of the Lloyd algorithm for quantizer design,such as, for example, the quantizer 362 of FIG. 7A or the quantizer 388of FIG. 7B. In step 420, PCM table is initialized. For example, aninitial PCM table PCMtab(1) with m=1 is set up. Then in steps 422, 424and 426, given the PCM table, PCMtab(m) (which initially is PCMtab(1) ofstep 420), a Lloyd Iteration is performed to generate the improved PCMtable PCMtab(m+1). In step 422 of the Lloyd iteration, a nearestneighbor partitioning is performed. Further during the Lloyd iteration,a centroid is computed in step 424, and the distortion is computed instep 426. In step 428 of the process, a test is performed to see whetherthe average distortion for PCMatb(m+1) has changed by a small enoughamount since the last iteration, stop. If test passes, the process stopsat step 430. If, however, the test does not pass, m=m+1 and the processreturns to step 422 for another Lloyd iteration.

Although the compression is not lossless, the picture quality istypically very good without noticeable degradation. The adaptive DPCMtechnique of this embodiment may be combined with the adaptive-enablingtechnique (of the RMM mode), also of the present invention, to providegood picture quality for decoding and display of HD sequences in the RMMmode.

Although this invention has been described in certain specificembodiments, many additional modifications and variations would beapparent to those skilled in the art. It is therefore to be understoodthat this invention may be practiced otherwise than as specificallydescribed. Thus, the present embodiments of the invention should beconsidered in all respects as illustrative and not restrictive, thescope of the invention to be determined by the appended claims and theirequivalents.

1. A video processing system for receiving a digital bitstream and forprocessing the digital bitstream, the system comprising: a videoprocessor for processing the digital bitstream to generate a pluralityof pictures, each picture being associated with a first flag forproviding an indication on whether or not the picture is to beimplemented with a reduced memory mode and a second flag for providingan indication on whether or not the picture is to be reduced in size topicture data prior to being stored, the indication of the second flagbeing adaptively determined after a picture type of the associatedpicture has been first determined by the video processor; adown-converter for converting one or more pictures to picture data; amemory comprising a plurality of buffers, the picture being stored in abuffer as the picture data when the indication of the associated firstflag is indicating switched-on and the indication of the associatedsecond flag is indicating armed, and the picture being stored in two ormore buffers without size reduction when the indication of theassociated first flag is indicating switched-off or the indication ofthe associated second flag is indicating unarmed; and an up-converterfor recovering the pictures from the picture data and for providing thepictures to the video processor for use during processing of the digitalbitstream.
 2. The video processing system according to claim 1, furthercomprising: a counter for counting a particular picture type of aplurality of pictures, wherein the indication of the associated secondflag is adaptively determined by the counter and after the picture typeof the associated picture has been first determined by the processor. 3.The video processing system according to claim 2, wherein both theindication of the associated second flag is indicating armed and thecounter is initialized when both the picture is an independent decodablepicture type and the indication of the associated first flag isindicating switched-on.
 4. The video processing system according toclaim 2, wherein both the indication of the associated second flag isindicating unarmed and the counter is initialized when both the pictureis a discardable picture type and the indication of the associated firstflag is indicating switched-on.
 5. The video processing system accordingto claim 2, wherein the indication of the associated second flag isindicating armed at times and unarmed at other times when the picture isa non-discardable picture type and when the indication of the associatedfirst flag is indicating switched-on.
 6. The video processing systemaccording to claim 5, wherein the pictures comprise frames, theindication of the second flag associated with every firstnon-discardable frame following an independent decodable frame isindicating armed, and the respective indications of the second flagsassociated with other non-discardable frames are indicating unarmed. 7.The video processing system according to claim 5, wherein the picturescomprise fields, and the respective indications of the second flagsassociated with up to four non-discardable fields following anindependent decodable field or a discardable field are indicating armedwhen a first one of the non-discardable fields is a top field.
 8. Thevideo processing system according to claim 5, wherein the picturescomprise fields, and the respective indications of the second flagsassociated with up to three non-discardable fields following anindependent decodable field are indicating armed when a first one of thenon-discardable fields is a bottom field.
 9. The video processing systemaccording to claim 1, wherein the indication of the associated secondflag is indicating armed when both the picture is an independentdecodable picture type and the indication of the associated first flagis indicating switched-on.
 10. The video processing system according toclaim 1, wherein the indication of the associated second flag isindicating unarmed when both the picture is a discardable picture typeand the indication of the associated first flag is indicatingswitched-on.
 11. The video processing system according to claim 1,wherein the indication of the associated second flag is indicating armedat times and unarmed at other times when the picture is anon-discardable picture type and when the indication of the associatedfirst flag is indicating switched-on.
 12. The video processing systemaccording to claim 11, wherein the pictures comprise frames, theindication of the second flag associated with every firstnon-discardable frame following an independent decodable frame isindicating armed, and the respective indications of the second flagsassociated with other non-discardable frames are indicating unarmed. 13.The video processing system according to claim 11, wherein the picturescomprise fields, and the respective indications of the second flagsassociated with up to four non-discardable fields following anindependent decodable field or a discardable field are indicating armedwhen a first one of the non-discardable fields is a top field.
 14. Thevideo processing system according to claim 11, wherein the picturescomprise fields, and the respective indications of the second flagsassociated with up to three non-discardable fields following anindependent decodable field are indicating armed when a first one of thenon-discardable fields is a bottom field.
 15. The video processingsystem according to claim 1, wherein the video processing system is usedas part of a picture-in-picture processor circuit for providingpicture-in-picture capability without providing multiple full-resolutionvideo processors.
 16. The video processing system according to claim 1,wherein the associated first flag is switched-on to providepicture-in-picture capability without providing multiple full-resolutionvideo processors.
 17. The video processing system according to claim 1,wherein the indication of the associated first flag is indicatingswitched-on when the digital bit stream of the associated picture is apicture-in-picture stream.
 18. A method of processing a digitalbitstream, the method comprising the steps of: processing the digitalbitstream to generate a plurality of pictures, each picture beingassociated with a first flag for indicating whether or not the pictureis to be implemented with a reduced memory mode and a second flag forindicating whether or not the picture is to be reduced in size topicture data prior to being stored in a memory, the memory comprising aplurality of buffers; determining a picture type of the picture;converting one or more pictures to picture data; storing the picture ina buffer as the picture data when the associated second flag is armedadaptively and when the first flag is switched-on; storing the picturein two or more buffers without size reduction when the associated secondflag is unarmed or when the associated first flag is switched-off; andrecovering the pictures from the picture data to be used duringprocessing of the digital bitstream.
 19. The method of processing adigital bitstream 18 according to claim, wherein the method is used in apicture-in-picture processor circuit for providing picture-in-picturecapability without providing multiple full-resolution video processors.20. A method of generating a display video stream using a digitalbitstream, the method comprising: a) processing the digital bitstream togenerate HDTV pictures, the HDTV pictures including one or more anchorpictures; b) compressing the anchor pictures in spatial domain using again adaptive quantization differential compression algorithm togenerate compressed bits, the compressed bits being both differenced andquantized; c) storing the compressed bits in memory; d) decompressingthe compressed bits using a gain adaptive quantization differentialdecompression algorithm to generate the anchor pictures; and e)repeating a)-d) using the decompressed anchor pictures during theprocessing of the digital bitstream, wherein a)-e) is used in apicture-in-picture processor circuit for providing picture-in-picturecapability without providing multiple full-resolution video processors.21. The method of generating a display video stream according to claim20, wherein a)-e) are only performed for those anchor picturesassociated with a flag indicating a reduced memory mode.